<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>使用ajax发起异步请求</title>
    <script src="../../js/jquery-1.12.4.min.js"></script>
</head>
<body>
<button onclick="ajaxThrowErrorFunc()">测试ajax的success方法中发生异常是否会抛出来</button>
</body>
<script>

    /**
     * 功能: 测试jquery的ajax的success方法中抛出异常时是否会影响外部的函数执行.
     * 结论:
     * 1. 单ajax的async设置为true时, 不会影响外部, 但是设置为false时, 就会影响外部函数的执行.
     */
    function ajaxThrowErrorFunc() {
        try {
            console.log("start");
            $.ajax({
                url: "./a.json",
                async: false,
                type: "get",
                success: function (data) {
                    console.log(data);
                    throw new Error("ajax的success方法中发生异常");
                }
            });
            console.log("end");
        } catch (e) {
            console.log("捕获到异常" + e);
        }
        console.log("try外面的代码");
    }

</script>
</html>